package com.ruoyi.attendance.service;

import java.util.List;
import com.ruoyi.attendance.domain.AttendanceRecord;

/**
 * 考勤信息Service接口
 * 
 * @author Weiney
 * @date 2025-03-03
 */
public interface IAttendanceRecordService 
{
    /**
     * 查询考勤信息
     * 
     * @param userId 学生ID
     * @return 考勤信息
     */
    public AttendanceRecord selectAttendanceRecordByUserIdAndCourseRecordId(Long userId, Long courseRecordId);

    /**
     * 查询考勤信息列表
     * 
     * @param attendanceRecord 考勤信息
     * @return 考勤信息集合
     */
    public List<AttendanceRecord> selectAttendanceRecordList(AttendanceRecord attendanceRecord);

    /**
     * 【学生】查询考勤信息列表
     *
     * @param attendanceRecord 考勤信息
     * @return 考勤信息集合
     */
    public List<AttendanceRecord> selectAttendanceRecordListForStudent(AttendanceRecord attendanceRecord);

    /**
     * 【教师】查询当前课程下的所有学生考勤情况
     * @param attendanceRecord
     * @return
     */
    public List<AttendanceRecord> selectAttendanceRecordListForTeacher(AttendanceRecord attendanceRecord);

    /**
     * 考勤详情查询
     * @param attendanceRecord
     * @return
     */
    public List<AttendanceRecord> selectAttendanceRecordListForDetail(AttendanceRecord attendanceRecord);
    /**
     * 新增考勤信息
     * 
     * @param attendanceRecord 考勤信息
     * @return 结果
     */
    public int insertAttendanceRecord(AttendanceRecord attendanceRecord);

    /**
     * 修改考勤信息
     * 
     * @param attendanceRecord 考勤信息
     * @return 结果
     */
    public int updateAttendanceRecord(AttendanceRecord attendanceRecord);

    /**
     * 批量删除考勤信息
     * 
     * @param courseRecordIds 需要删除的考勤信息主键集合
     * @return 结果
     */
    public int deleteAttendanceRecordByCourseRecordIds(Long[] courseRecordIds);

    /**
     * 删除考勤信息信息
     * 
     * @param courseRecordId 考勤信息主键
     * @return 结果
     */
    public int deleteAttendanceRecordByCourseRecordId(Long courseRecordId);


}
